package com.lanchetech.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 优惠券
 */
@ApiModel(value = "com-lanchetech-entity-Coupon")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Coupon implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 优惠券标题
     */
    @ApiModelProperty(value = "优惠券标题")
    private String title;

    /**
     * 商品SPU id
     */
    @ApiModelProperty(value = "商品SPU id")
    private Long spuId;

    /**
     * 优惠金额
     */
    @ApiModelProperty(value = "优惠金额")
    private BigDecimal discountAmount;

    /**
     * 最低可使用优惠的消费金额
     */
    @ApiModelProperty(value = "最低可使用优惠的消费金额")
    private BigDecimal minAmount;

    /**
     * 可领取数量
     */
    @ApiModelProperty(value = "可领取数量")
    private Integer stock;

    /**
     * 已发放数量
     */
    @ApiModelProperty(value = "已发放数量")
    private Integer issuedQuantity;

    /**
     * 优惠券领取-开始时间
     */
    @ApiModelProperty(value = "优惠券领取-开始时间")
    private Date startTime;

    /**
     * 优惠券领取-结束时间
     */
    @ApiModelProperty(value = "优惠券领取-结束时间")
    private Date endTime;

    /**
     * 优惠券使用有效期-开始时间
     */
    @ApiModelProperty(value = "优惠券使用有效期-开始时间")
    private Date useStartTime;

    /**
     * 优惠券使用有效期-结束时间
     */
    @ApiModelProperty(value = "优惠券使用有效期-结束时间")
    private Date useEndTime;

    /**
     * 类型 0 全场通用 1 指定商品SPU可用
     */
    @ApiModelProperty(value = "类型 0 全场通用 1 指定商品SPU可用")
    private Byte type;

    /**
     * 状态 1 已启用 0 已禁用
     */
    @ApiModelProperty(value = "状态 1 已启用 0 已禁用")
    private Byte status;

    /**
     * 删除 0 未删除 1 已删除
     */
    @ApiModelProperty(value = "删除 0 未删除 1 已删除")
    private Byte deleted;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updatedAt;

    /**
     * 是否为平台优惠券 0 商家优惠券 1 平台优惠券
     */
    @ApiModelProperty(value = "是否为平台优惠券 0 商家优惠券 1 平台优惠券")
    private Byte platformType;

    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long tenantId;

    private static final long serialVersionUID = 1L;
}